package com.dc.refactoring._3_重新组织数据._2_ReplaceDataValueWithObject.oldObject;

import java.util.List;

/**
 * Description: 以对象取代数据值 订单
 *
 * 一开始设计简单，或者某些参数，在不断地演化中被赋予的东西越来越多，
 * 最终我们不得不将其封装为对象
 *
 * @author: gdc
 * @date: 2020/11/16
 * @version 1.0
 */
public class Order {
    /**
     * 开发初期，构思简单，以 customer 表示客户信息
     */
    private String customer;

    public Order(String customer) {
        this.customer = customer;
    }

    public String getCustomer() {
        return customer;
    }

    public void setCustomer(String customer) {
        this.customer = customer;
    }

    /**
     * 获取客户的订单数
     * @param orders            订单列表
     * @param customer          客户
     * @return                  订单数
     */
    private static int numberOfOrderFor(List<Order> orders, String customer) {
        return (int) orders.stream().filter(order -> order.getCustomer().equals(customer)).count();
    }
}
